// ActionScript file
/**
 * 简单模拟eval函数（十个参数,不能有对象型的参数，否则可能出错）
 */
public function eval(funcInfo:String):void
{
	var index:Number=funcInfo.indexOf("(");
	var endIndex:Number=funcInfo.lastIndexOf(")");
	var funcName:String=funcInfo.substring(0, index);
	var funcPros:String=funcInfo.substring(index + 1, endIndex).replace(/['"]/gim, "");
	if (this.hasOwnProperty(funcName))
	{
		var func:Function=this[funcName];
		evalProperty(func, funcPros.split(","));
	}
}

/**
 * 暴露出的eval函数，目前不能支持多参的执行（十个参数）
 */
public function evalFunc(funcName:String, ... params):void
{
	if (this.hasOwnProperty(funcName))
	{
		var func:Function=this[funcName];
		evalProperty(func, params);
	}
}

public function evalPropertyByFuncName(funcName:String, params:Array):void{
	evalProperty(this[funcName],params);
}

/**
 * 笨方法，目前写可以满足10个参数
 */
public function evalProperty(funcName:Function, params:Array):void
{
	if (params.length == 0)
	{
		funcName();
	}
	if (params.length == 1)
	{
		funcName(params[0]);
	}
	if (params.length == 2)
	{
		funcName(params[0], params[1]);
	}
	if (params.length == 3)
	{
		funcName(params[0], params[1], params[2]);
	}
	if (params.length == 4)
	{
		funcName(params[0], params[1], params[2], params[3]);
	}
	if (params.length == 5)
	{
		funcName(params[0], params[1], params[2], params[3], params[4]);
	}
	if (params.length == 6)
	{
		funcName(params[0], params[1], params[2], params[3], params[4], params[5]);
	}
	if (params.length == 7)
	{
		funcName(params[0], params[1], params[2], params[3], params[4], params[5], params[6]);
	}
	if (params.length == 8)
	{
		funcName(params[0], params[1], params[2], params[3], params[4], params[5], params[6], params[7]);
	}
	if (params.length == 9)
	{
		funcName(params[0], params[1], params[2], params[3], params[4], params[5], params[6], params[7], params[8]);
	}
	if (params.length == 10)
	{
		funcName(params[0], params[1], params[2], params[3], params[4], params[5], params[6], params[7], params[9]);
	}
}